import { BasicColumn } from '/src/components/Table';
import { FormSchema } from '/src/components/Table';
import { rules} from '/src/utils/helper/validator';
import { render } from '/src/utils/common/renderUtils';
import { getWeekMonthQuarterYear } from '/src/utils';
import component from '/@/locales/lang/en/component';
import {left} from "inquirer/lib/utils/readline";
import { h } from 'vue';  // 添加这一行导入h函数
//列表数据
export const columns: BasicColumn[] = [
  {
    title: '景点名称',
    align: 'center',
    dataIndex: 'attractionId_dictText',
    fixed: 'left'
  },
  {
    title: '用户名',
    align: 'center',
    dataIndex: 'userId_dictText',
    fixed:'left'
  },
  //：0-投诉，1-建议，2-咨询，3-表扬，4-其他
  {
    title: '反馈类型',
    align: 'center',
    dataIndex: 'feedbackType',
    customRender: ({ text }) => {
      return render.renderDict(text, 'feedback_type');
    },
  },
  {
    title: '评价内容',
    align: 'center',
    dataIndex: 'feedbackContent',
  },
  //：0-待处理，1-已处理，2-待回复，3-已回复
  {
    title: '状态',
    align: 'center',
    dataIndex: 'feedbackStatus',
    customRender: ({ text }) => {
      // 根据状态值显示不同颜色的Tag
      const status = parseInt(text);
      let color = '';
      
      // 设置不同状态对应的颜色
      switch(status) {
        case 0: // 待处理
          color = '#f50'; // 橙色
          break;
        case 1: // 已处理
          color = '#108ee9'; // 蓝色
          break;
        case 2: // 待回复
          color = '#ff4d4f'; // 红色
          break;
        case 3: // 已回复
          color = '#52c41a'; // 绿色
          break;
        default:
          color = '#d9d9d9'; // 默认灰色
      }
      
      // 使用Tag组件显示状态
      return h('div', { style: { display: 'flex', justifyContent: 'center' } }, [
        h('span', {
          style: {
            padding: '2px 8px',
            fontSize: '12px',
            borderRadius: '4px',
            backgroundColor: color,
            color: '#fff',
            display: 'inline-block'
          }
        }, render.renderDict(text, 'feedback_status'))
      ]);
    },
  },
  {
    title: '回复人员',
    align: 'center',
    dataIndex: 'responseUserId_dictText',
  },
  {
    title: '回复时间',
    align: 'center',
    dataIndex: 'responseTime',
  },
  {
    title: '回复内容',
    align: 'center',
    dataIndex: 'responseContent',
  },
];
//查询数据
export const searchFormSchema: FormSchema[] = [
  {
    label: '反馈类型',
    field: 'feedbackType',
    component: 'JSelectMultiple',
    componentProps: {
      dictCode: 'feedback_type',
    },
  },
  {
    label: '状态',
    field: 'feedbackStatus',
    component: 'JSelectMultiple',
    componentProps: {
      dictCode: 'feedback_status',
    },
  },
];

export const ansSchema: FormSchema[] = [
  {
    label: '评价内容',
    field: 'feedbackContent',
    component: 'Input',
    componentProps: {
    },
  },
  {
    label: '回复内容',
    field: 'text', // 修改字段名为text，与后端匹配
    component: 'InputTextArea', // 改为TextArea更适合多行文本
    componentProps: {
      placeholder: '请输入回复内容',
      rows: 4,
    },
    required: true,
  },
  // 添加隐藏的id字段
  {
    label: '',
    field: 'id',
    component: 'Input',
    show: false,
  },
];
//表单数据
export const formSchema: FormSchema[] = [
  {
    label: '景点id',
    field: 'attractionId',
    component: 'Input',
    show: false,
  },
  {
    label: '用户id',
    field: 'userId',
    component: 'Input',
    show: false,
  },
  {
    label: '景点名称',
    field: 'attractionName',
    component: 'Input',
    componentProps: {
      readonly: true, // 只读（可选中但不可编辑）
    },
  },
  {
    label: '用户名',
    field: 'realName',
    component: 'Input',
    componentProps: {
      readonly: true, // 只读（可选中但不可编辑）
    },
  },
  //：0-投诉，1-建议，2-咨询，3-表扬，4-其他
  {
    label: '反馈类型',
    field: 'feedbackType',
    component: 'JDictSelectTag',
    componentProps: {
      dictCode: 'feedback_type',
    },
  },
  {
    label: '评价内容',
    field: 'feedbackContent',
    component: 'Input',
  },
  //：0-待处理，1-已处理，2-待回复，3-已回复
  {
    label: '状态',
    field: 'feedbackStatus',
    component: 'JDictSelectTag',
    componentProps: {
      dictCode: 'feedback_status',
    },
  },
  {
    label: '回复人员',
    field: 'responseUserId',
    component: 'Input',
    show: false,
  },
  {
    label: '回复时间',
    field: 'responseTime',
    component: 'Input',
  },
  {
    label: '回复内容',
    field: 'responseContent',
    component: 'Input',
  },
  // TODO 主键隐藏字段，目前写死为ID
  {
    label: '',
    field: 'id',
    component: 'Input',
    show: false,
  },
];

// 高级查询数据
export const superQuerySchema = {
  attractionId: { title: '景点id', order: 0, view: 'text', type: 'string' },
  userId: { title: '用户id', order: 1, view: 'text', type: 'string' },
  feedbackType: { title: '反馈类型', order: 2, view: 'text', type: 'string' },
  feedbackContent: { title: '评价内容', order: 3, view: 'text', type: 'string' },
  feedbackStatus: { title: '状态', order: 4, view: 'list', type: 'string', dictCode: '' },
  responseUserId: { title: '回复人员id', order: 5, view: 'text', type: 'string' },
  responseTime: { title: '回复时间', order: 6, view: 'text', type: 'string' },
  responseContent: { title: '回复内容', order: 7, view: 'text', type: 'string' },
};

/**
 * 流程表单调用这个方法获取formSchema
 * @param param
 */
export function getBpmFormSchema(_formData): FormSchema[]{
  // 默认和原始表单保持一致 如果流程中配置了权限数据，这里需要单独处理formSchema
  return formSchema;
}
